home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / commoditys / yak_2.11 / docs / english / yak.guide (.txt) next >
Amigaguide Document  |  1996-04-07  |  81KB  |  1,844 lines

  1. @database "Yak.guide"
  2. @index "Index"
  3. ##      CONTENTS
  4. @node Main "Yak Documentation"
  5. @next Features
  6.                                 @{b} Yak Version 2.11 @{ub}
  7.                         by Ga
  8. l Marziou and Philippe Bastiani
  9.                              released on 22 October 1995.
  10.    @{b}Introduction... @{ub}
  11.         @{" Features                   " link Features}        @{" Required System            " link Requirement}
  12.         @{" Installation               " link Installation}        @{" Limitations                " link Limitations}
  13.         @{" Current users: Notez-bien  " link nb}
  14.    @{b}The commodity program... @{ub}
  15.         @{" Overview                   " link YakCommodity}        @{" Starting                   " link YakStarting}
  16.         @{" Tooltypes                  " link YakTooltypes}
  17.    @{b}The preferences editor... @{ub}
  18.         @{" Overview                   " link YakPrefsEditor}        @{" Starting the editor        " link YakPrefsStarting}
  19.         @{" Tooltypes                  " link YakPrefsTooltypes}        @{" Main Window                " link MainWindow}        
  20.         @{" Mouse Cycling Window       " link MouseCycling}        @{" Blanking Window            " link Blanking}        
  21.         @{" Miscellaneous Window       " link Miscellaneous}        @{" Hotkeys Window             " link Hotkeys}
  22.    @{b}Other topics... @{ub}
  23.         @{" Copyright and Distribution " link Copyright}        @{" Problems / Non Problems    " link Problems}
  24.         @{" Program History            " link History}        @{" Credits and Thanks         " link Credits}
  25.         @{" Development team           " link YakTeam}        @{" Contacting the Authors     " link Contact}
  26.         @{" INDEX " link Index}
  27. @endnode
  28. ##      FEATURES
  29. @node Features "Yak Documentation: Features"
  30. @prev Main
  31. @next Requirement
  32. @{b}Features@{ub}
  33. Yak stands for "Yet Another Kommodity" (never was any good at speling - see
  34. @{" Jokes " link Jokes}),  and is a mouse/window manipulation program along the same lines
  35. as DMouse, MightyMouse etc.
  36. Why  write  another one?  None of the others (and I've looked at almost all
  37. of them) were quite right for me.  Yak has the following features:
  38.         o AutoPoint (sunmouse) that only activates when mouse stops
  39.           can also specify which screens to include/exclude.
  40.           (Compatible with popup-menu type programs)
  41.         o AutoPop windows (bring them to front) when they're
  42.           auto-activated;
  43.         o KeyActivate windows (when key pressed);
  44.         o Activate windows when menu button pressed;
  45.         o Click windows to front or back; may also specify which
  46.           screens/windows to include/exclude.
  47.         o Cycle screens with mouse;
  48.         o Mouse and Screen blanking (hotkey blanking too);
  49.         o Extensible hotkey system (like FKey's) with actions to:
  50.                 Execute a CLI Command or an ARexx script;
  51.                 Insert text (with embedded hotkeys);
  52.                 Insert date (in custom format if locale present);
  53.                 Close/Zip/Shrink/Enlarge windows;
  54.                 Move/Cycle screens and windows;
  55.                 Activate Workbench;
  56.                 Blank display;
  57.                 Pop up a palette on front screen (needs reqtools);
  58.                 Menu shortcut
  59.         o KeyClick with adjustable volume;
  60.         o No Click option (for drives).
  61.         o Wildstar option (like StarBurst) lets you use '*' as wildcard.
  62.         o Optional on-screen AppIcon to bring up preferences window.
  63. Look  familiar?  It's a combination of the AutoPoint, ClickToFront, Blanker
  64. and  IHelp/FKey  standard  commodities  (on the Extras disk) with a hint of
  65. KCommodity and DMouse thrown in.
  66. Fully localized when running OS 2.1 or more!
  67. And  it's  quite  small!
  68. @endnode
  69. @node Jokes "Yak Documentation: Jokes"
  70. @prev Features
  71. @next Features
  72. @{b}Jokes@{ub}
  73. These might be old, but they're good:
  74. Q. What's the difference between a goldfish and a goat?
  75. A. A goldfish mucks around in fountains!
  76. And if you got that one, you'll definitely get this one...
  77. Q. What's the difference between a magic wand and a truncheon (baton).
  78. A. A magic wand is used for cunning stunts.
  79. (I *always* say that last answer wrong)
  80. @endnode
  81. ##      REQUIREMENT
  82. @node Requirement "Yak Documentation: Required System"
  83. @prev Features
  84. @next Installation
  85. @{b}Required System @{ub}
  86. Yak requires version 2.04 of the Amiga operating system or higher.
  87. Some features are only available in 3.0+ system version.
  88. It supports commodities exchange standard and @{"localization" Link Localization} with
  89. locale.library
  90. @endnode
  91. ##      LOCALIZATION
  92. @node Localization "Yak Documentation: Localization"
  93. @prev Requirement
  94. @next Requirement
  95. @{b}Localization@{ub}
  96. Yak is fully localized. It currently supports english as built-in language
  97. and danish, dutch, finnish, french, german, italian and swedish with
  98. supplied catalogs. If you want to localize Yak to your own language, then
  99. you're welcome. There's no need to be a developper to make a translation,
  100. the only requisite is to know very well your language :-)
  101. Be aware that there are several things that can be translated :
  102. Yak itself by writing a catalog.
  103. The installer script.
  104. The amigaguide documentation.
  105. You can translate part of this or the whole as you want.
  106. In the Catalogs directory, you will find a file named yak.ct which contains
  107. the strings used by Yak interface and which has been built from yak.cd that
  108. you an also find in the Catalogs directory..
  109. It is ready to be translated, let's take an example :
  110. MISCELLANEOUS_STRING
  111. ; Miscellaneous;
  112. So, if you want to translate  "Miscellaneous"  into french,  you should put
  113. its translation on the empty line as this :
  114. MISCELLANEOUS_STRING
  115. Divers
  116. ; Miscellaneous;
  117. So,  when you have translated all the strings of yak.ct  you can either use
  118. catcomp or one of his PD replacements such as CatEdit, KitCat or FlexCat to
  119. generate your catalog or you can send me yak.ct so that I will generate the
  120. catalog myself.
  121. Credits for the translator should go into the 'about' requester which
  122. string identifier is About_Yak_STRING.
  123. @endnode
  124. ##      INSTALLATION
  125. @node Installation "Yak Documentation: Installation"
  126. @prev Requirement
  127. @next Limitations
  128. @{b}Installation@{ub}
  129. Double-click  on one  of the icons  located  in  the  Installation  drawer,
  130. according to the language you want to use.
  131. Simply follow the steps. Help is available almost everywhere.
  132. @endnode
  133. ##      LIMITATIONS
  134. @node Limitations  "Yak Documentation: Limitation"
  135. @prev Installation
  136. @next nb
  137. @{b}Limitations@{ub}
  138. Yak only has a plain screen-blanker. Since the introduction of OS 2.0,
  139. there has been a profusion of fancy modular screen blankers. I think most
  140. people have their own favourite fancy blanker, so I didn't include one in
  141. Yak, don't ask for one.
  142. There  is  no mouse-acceleration.  The system default one (settable via the
  143. Input  preferences)  is  more than adequate as far as I am concerned.  If I
  144. get  enough  requests,  I'll  add  faster  acceleration (so far, hardly any
  145. received).
  146. @endnode
  147. ##      NOTEZ-BIEN
  148. @node nb  "Yak Documentation: Notez-bien"
  149. @prev Limitations
  150. @next YakCommodity
  151. @{b}Current users: Notez-bien@{ub}
  152. Yak's  preference  file  format has  changed again. A  @{"Convert" link Convert} program is
  153. supplied to create a 2.0 preference file from the 1.xx preference files.
  154. The ClickWindows pattern will be lost!.
  155. Yak has being split into two commodities:
  156.     - @{"Yak main commodity      " link YakCommodity}
  157.     - @{"Yak's preferences editor" link YakPrefsEditor}
  158. Of  course,  there  have  been  many  other changes,  and you should browse
  159. through this document to accustomise yourself with them.
  160. @endnode
  161. ## CONVERT
  162. @node Convert "Yak Documentation: Convert program"
  163. @prev nb
  164. @next nb
  165. @{b}Convert program@{ub}
  166. If  you are  a user of  previous version of Yak,  you can  convert your own
  167. settings  to the new preferences format.  Just double click  on the convert
  168. icon or run it from a shell.
  169. In case you use tooltype @{b}LANGUAGE@{ub} for previous version of Yak, you can also
  170. set  it  for  Convert  to benefit  of automatic naming of hotkeys  in  your
  171. favorite language.
  172. @endnode
  173. ##  YAK MAIN COMMODITY
  174. @node YakCommodity "Yak Documentation: Yak commodity"
  175. @prev nb
  176. @next YakStarting
  177. @{b}Yak commodity@{ub}
  178. The commodity program  will  simply  install  and process  all  the actions
  179. specified within the preferences editor  (see @{"The Preferences Editor" Link YakPrefsEditor},  for
  180. more information about setting the preferences).
  181. On demand Yak may also launch the Preferences editor either  via HotKey, or
  182. via AppIcon.
  183. You can control it via the Commodities Exchange.
  184. You can now choose between a standard Gadtools or a BGUI user interface.
  185. @endnode
  186. ##  STARTING YAK
  187. @node YakStarting "Yak Documentation: Starting Yak"
  188. @prev YakCommodity
  189. @next YakTooltypes
  190. @{b}Starting Yak@{ub}
  191. Yak  is  designed to be run from the sys:WBStartup drawer, but may be 'run'
  192. from a Shell (not recommended, as it will use significantly more memory).
  193. It needs a stack size of 4500 bytes.  You should set this in Yak's icon, or
  194. if starting it from the Shell, use the following commands:
  195.         stack 4500
  196.         run >nil: yak
  197. Yak doesn't use Shell parameters.
  198. In any case, Yak reads the icon parameters.
  199. @endnode
  200. ##      TOOLTYPES
  201. @node YakTooltypes "Yak Documentation: Yak tooltypes"
  202. @prev YakStarting
  203. @next YakPrefsEditor
  204. @{b}Using tooltypes@{ub}
  205. The  only tooltypes that Yak takes are the standard Workbench ones (such as
  206. DONOTWAIT),  the  standard  Commodities ones  (such as CX_POPUP),   and the
  207. specific tooltypes ones (such as LANGUAGE).  Those tooltypes are:
  208. ToolType      Category        Description                   Default
  209. ---------------------------------------------------------------------------
  210. CX_POPKEY     HOTKEY      Key to show settings window       RCommand Help
  211. CX_PRIORITY   INTEGER     Priority of this commodity        0
  212. CX_POPUP      BOOLEAN     Show settings window on startup   NO
  213. APPICON       BOOLEAN     If TRUE, an AppIcon is created    FALSE
  214. ICONNAME      STRING      Name of AppIcon                   "Yak!"
  215. ICONXPOS      INTEGER     x-coordinate of AppIcon           floating
  216. ICONYPOS      INTEGER     y-coordinate of AppIcon           floating
  217. LANGUAGE      STRING      Name of language to use           Not specified
  218. PREFSPRG      STRING      Full name of preferences editor   "SYS:Prefs/Yak"
  219. FRONT_DELAY   INTEGER     Delay for Window To Front         6
  220. BACK_DELAY    INTEGER     Delay for Window To Back          6
  221. You  should also have the tooltype @{b}DONOTWAIT@{ub} set  if you want to start Yak
  222. from your SYS:WBStartup drawer.
  223. The @{b}CX_PRIORITY@{ub} may be useful in enabling Yak and other commodities to work
  224. better together.
  225. The  @{b}AppIcon@{ub} facility is  optional,  and   by  default  is  off.   Specify
  226. APPICON=TRUE  if  you  want  it.   If  you do, Yak puts an AppIcon onto the
  227. Workbench  screen,  and  when  it is double-clicked, the preferences editor
  228. is launched.    The  icon imagery is obtained from the icon Yak was started
  229. from,  which allows you to customise the AppIcon to your colours/resolution
  230. simply by changing Yak's icon.
  231. The @{b}LANGUAGE@{ub}  tooltype  has been added  for people  using Workbench  in one
  232. language  and Yak  in another one.  For example, french friends of mine are
  233. used  to english workbench but want  to use Yak in french so they just have
  234. to set the LANGUAGE tooltype as this :
  235.                 LANGUAGE=fran
  236. Of course, those  of  you who  want to  use same  language for both Yak and
  237. workbench don't have to worry about this tooltype.
  238. @endnode
  239. ##  YAK PREFERENCES EDITOR
  240. @node YakPrefsEditor "Yak Documentation: The Yak's preferences editor"
  241. @prev YakTooltypes
  242. @next YakPrefsStarting
  243. @{b}The Yak's Preferences Editor @{ub}
  244. With the preferences editor you can manage the global configuration of Yak.
  245. This configuration gets automatically loaded by the Yak handler.
  246. Remember  that  you  must  press the RETURN, ENTER or TAB key once you have
  247. edited  a string gadget, so that the change is registered.  Simply clicking
  248. outside  it  will lose the changes.  (The TAB key activates the next string
  249. gadget for text entry).
  250. The windows are AppWindows:  if you drop  a preferences file on  the editor
  251. the preferences will be loaded.
  252. You can control the editor via the Commodities Exchange.
  253. @endnode
  254. ##  STARTING YAK PREFS
  255. @node YakPrefsStarting "Yak Documentation: Starting the preferences editor"
  256. @prev YakPrefsEditor
  257. @next YakPrefsTooltypes
  258. @{b}Starting the preferences editor @{ub}
  259. o This program may be started simply double-clicking on it's icon.
  260. Per default the program is located within "SYS:Prefs" drawer.
  261. o On demand the Yak's handler may launch the editor:
  262.         Double click its icon;
  263.         Press RCommand Help (i.e. the Right Amiga key and the Help key).
  264.         This key-sequence is configurable (via the CX_POPKEY tooltype);
  265.         Double click Yak's AppIcon (if this feature is set);
  266.         Start Yak again (from Workbench tool icon);
  267.         Via the Commodities Exchange (on the Extras disk).
  268. @endnode
  269. ##      TOOLTYPES
  270. @node YakPrefsTooltypes "Yak Documentation: Yak editor tooltypes"
  271. @prev YakPrefsStarting
  272. @next MainWindow
  273. @{b}Using tooltypes@{ub}
  274. The  only tooltypes that Yak takes are the standard Workbench ones (such as
  275. DONOTWAIT),  the  standard  Commodities ones  (such as CX_POPUP),   and the
  276. specific tooltypes ones (such as LANGUAGE).  Those tooltypes are:
  277. ToolType      Category        Description                   Default
  278. ---------------------------------------------------------------------------
  279. CX_PRIORITY   INTEGER     Priority of this commodity        0
  280. FONT          STRING      Name of the font to use for GUI   Not specified
  281. LANGUAGE      STRING      Name of language to use           Not specified
  282. CREATEICONS   BOOLEAN     Create icons                      YES
  283. PREFSHELP     STRING      Full name of the help file        "Yak.guide"
  284. The @{b}FONT@{ub} tooltype is used to force the preferences editor to use
  285. your favorite font instead of the screen font.  For example, if you want
  286. the GUI to use Helvetica 15 set FONT=helvetica 15 or and FONT="helvetica 15".
  287. The @{b}LANGUAGE@{ub}  tooltype  has been added  for people  using Workbench  in one
  288. language  and Yak  in another one.  For example, french friends of mine are
  289. used  to english workbench but want  to use Yak in french so they just have
  290. to set the LANGUAGE tooltype as this :
  291.                 LANGUAGE=fran
  292. Of course, those  of  you who  want to  use same  language for both Yak and
  293. workbench don't have to worry about this tooltype.
  294. When the @{b}CREATEICONS@{ub} tooltype is set to YES, the editor will create an icon 
  295. for every preferences file that is created with the @{b}Save As@{ub} menu item.
  296. The @{b}PREFSHELP@{ub} tooltype specifies the full name of the online help file. Its
  297. default path is "HELP:language/",  where 'language' is one of your prefered
  298. languages as specified in your system preferences.
  299. @endnode
  300. ##  MAIN WINDOW
  301. @node MainWindow "Yak Documentation: Main window"
  302. @prev YakPrefsTooltypes
  303. @next MouseCycling
  304. @{b}Main Window@{ub}
  305. o To the top of the window, the 3 gadgets groups allow you to specify basic
  306.   settings:
  307.    @{" Windows Activation " link WindowsActivation}
  308.    @{" Screens Activation " link ScreensActivation}     
  309.    @{" AutoPopToFront     " link AutoPopToFront}
  310. o Several buttons open up others windows with advanced settings.
  311.   There are:
  312.    @{" Mouse Cycling " link MouseCycling}     @{" Blanking      " link Blanking}
  313.    @{" Edit Hotkeys  " link Hotkeys}     @{" Miscellaneous " link Miscellaneous}
  314. o This window has several attached @{"menus" link Menus}.
  315. o The lower 3 buttons are used to control the configuration:
  316.   With the @{b}Save@{ub} button  you can save the configuration permanently into the
  317.   file ENVARC:Yak.prefs and into the file ENV:Yak.prefs before quitting the
  318.   editor.
  319.   For  a  temporary  change,  use  the  @{b}Use@{ub}  button  which  will  save  the
  320.   configuration into the file ENV:Yak.prefs   (this file will not survive a
  321.   machine reset) and will quit the editor.
  322.   Click  on the @{b}Cancel@{ub} button  to quit  the editor without saving.
  323. @endnode
  324. @node Menus "Yak Documentation: Menus"
  325. @prev MainWindow
  326. @next MainWindow
  327. @toc  MainWindow
  328. @{b}The menus@{ub}
  329. o @{b}Project@{ub} menu:
  330.    With the @{b}Open@{ub}, @{b}Save@{ub} and @{b}Save As@{ub} items you can load and save the
  331.    configuration.
  332.    The @{b}About@{ub} item opens an information requester.
  333.    Selecting the @{b}Hide@{ub} item will hide the editor without saving.
  334.    Selecting the @{b}Quit@{ub} item will leave the editor without saving.
  335. o @{b}Edit@{ub} menu:
  336.    The @{b}Reset To Default@{ub} item sets the default configuration.
  337.    The @{b}Last Saved@{ub} item  loads the last saved configuration  from  the file
  338.    ENVARC:Yak.prefs.
  339.    With the @{b}Restore@{ub} item you can load the configuration that is active.
  340. o @{b}Settings@{ub} menu:
  341.    With  the @{b}Create Icons@{ub} item,  you  can choose whether  the Save As item
  342.    should create an icon or not.
  343. @endnode
  344. ##      Windows activation
  345. @node WindowsActivation "Yak Documentation: Windows Activation"
  346. @prev MainWindow
  347. @next ScreensActivation
  348. @toc  MainWindow
  349. @{b}Windows Activation@{ub}
  350. The following toggles are available:
  351.    @{" Key Activate    " link KeyActivate}        Activates window on a key pressed
  352.    @{" RMB Activate    " link RMBActivate}        Activates window with the right mouse button
  353.    @{" MMB Activate    " link MMBActivate}        Activates window with the middle mouse button
  354.    @{" AutoPoint       " link AutoPoint}        Activates the window under the mouse
  355. @endnode
  356. @node KeyActivate "Yak Documentation: Key Activate"
  357. @node KeyActivate "Yak Documentation: Key Activate"
  358. @node KeyActivate "Yak Documentation: Key Activate"
  359. @prev WindowsActivation
  360. @next RMBActivate
  361. @toc  WindowsActivation
  362. @{b}Key Activate@{ub}
  363. Activates window under mouse when key is pressed.  
  364. You should only need one of AutoPoint or KeyActivate.
  365. Note that the KeyActivate function only take place when  NO mouse button is
  366. pressed.  Not only does this avoid conflict   with   other   programs,   it   
  367. provides a way of preventing activation when it's not desired.
  368. See also:  @{" AutoPoint " link AutoPoint}
  369. @endnode
  370. @node RMBActivate "Yak Documentation: RMB Activate"
  371. @prev KeyActivate
  372. @next MMBActivate
  373. @toc  WindowsActivation
  374. @{b}RMB Activate@{ub}
  375. When selected,  the window under the mouse will be activated when the right
  376. mouse button  is pressed,  regardless of  the status of AutoPoint.  This is
  377. useful in getting the menu you want without either waiting for AutoPoint to
  378. activate the window or clicking into the window to make it active.
  379. For  instance, when using the screen depth gadgets, the new front screen is
  380. not  activated,  but  with  this  toggle set, clicking the RMB will get the
  381. correct menus.
  382. Note  1:  If  there  is  no window under the mouse, the first window on the
  383. screen will be activated.
  384. Note  2:  To  work properly with popupmenu-type programs, Yak's CX_PRIORITY
  385. may need to be higher than the popupmenu program's CX_PRIORITY.
  386. @endnode
  387. @node MMBActivate "Yak Documentation: MMB Activate"
  388. @prev RMBActivate
  389. @next AutoPoint
  390. @toc  WindowsActivation
  391. @{b}MMB Activate@{ub}
  392. When selected, the window under the mouse will be activated when the middle
  393. mouse button  is pressed,  regardless of  the status of AutoPoint.  This is
  394. useful in getting the menu you want without either waiting for AutoPoint to
  395. activate the window or clicking into the window to make it active.
  396. Note  1:  If  there  is  no window under the mouse, the first window on the
  397. screen will be activated.
  398. @endnode
  399. @node AutoPoint "Yak Documentation: AutoPoint"
  400. @prev MMBActivate
  401. @next WindowsActivation
  402. @toc  WindowsActivation
  403. @{b}AutoPoint@{ub}
  404. When actived,  the window under the mouse  will be activated.  This behaves
  405. almost  exactly like  Commodore's  AutoPoint  commodity,  in  that  it only
  406. activates a window when the mouse stops.  
  407. AutoPoint  is  compatible   with  popup-menu  type  programs  such  as  the
  408. excellent MagicMenu.
  409. AutoPoint settings:
  410.     - @{" AutoScreens     " link AutoScreens}
  411.     - @{" AutoPoint Delay " link AutoPointDelay}
  412. Note  that  the AutoPoint and AutoPopToFront functions only take place when
  413. NO  qualifier  (mouse  or  keyboard)  is pressed.  Not only does this avoid
  414. conflict   with   other   programs,   it   provides  a  way  of  preventing
  415. activation/popping when it's not desired.
  416. See also:  @{" AutoPopToFront " link AutoPopToFront}
  417. @endnode
  418. @node AutoScreens "Yak Documentation: AutoScreens"
  419. @prev AutoPoint
  420. @next AutoPointDelay
  421. @toc  AutoPoint
  422. @{b}AutoScreens@{ub}
  423. AutoPoint will work on screens whose default title matches this pattern.
  424. See also @{" Default Title " link DefaultTitle} and @{" AmigaDos Patterns " link PatternHelp}.
  425. @endnode
  426. @node AutoPointDelay "Yak Documentation: AutoPoint Delay"
  427. @prev AutoScreens
  428. @next AutoPoint
  429. @toc  AutoPoint
  430. @{b}AutoPoint Delay@{ub}
  431. Controls how long Yak should be waiting after mouse has stopped before
  432. activating window under mouse. This value must be into the 0 to 5 interval
  433. which correspound to 10 ms step.
  434. A delay of zero means no delay, obvious isn't it ?.
  435. @endnode
  436. ##      Screens activation
  437. @node ScreensActivation "Yak Documentation: Screens Activation"
  438. @prev WindowsActivation
  439. @next AutoPopToFront
  440. @toc  MainWindow
  441. @{b}Screens Activation@{ub}
  442. When  actived,  Yak will activate screens that it shuffles by hotkeys (i.e.
  443. Screen  Cycle  hotkey  and  LCommand  m  hotkey).  This is a toggle because
  444. conflicts arise with some programs.  This is similar (but not identical) to
  445. Steve  Tibbet's  WindX.
  446. By activating  screens  I mean that it activates  a window of  this screen,
  447. this window can be :
  448. - the window  that  was active  last time  you have visited  this screen by
  449. cycling screens via Yak's hotkeys.
  450. - the window under the mouse-pointer  if this screen has never been visited
  451. before.
  452. - the first window of this screens if both previous conditions failed.
  453. @endnode
  454. ## AutoPopToFront
  455. @node AutoPopToFront "Yak Documentation: AutoPopToFront"
  456. @prev AutoPoint
  457. @next MainWindow
  458. @toc  MainWindow
  459. @{b}AutoPopToFront@{ub}
  460. Only  operative  when  AutoPoint is set, this tells Yak to bring windows to
  461. the  front  as  well  as activating them.  The exception is when the window
  462. under the mouse has a requester showing.
  463. AutoPopToFront setting:
  464.     - @{" PopWindows " link PopWindows}
  465. Note  that  the AutoPopToFront and AutoPoint functions only take place when
  466. NO  qualifier  (mouse  or  keyboard)  is pressed.  Not only does this avoid
  467. conflict   with   other   programs,   it   provides  a  way  of  preventing
  468. activation/popping when it's not desired.
  469. See also:  @{" AutoPoint " link AutoPoint}
  470. @endnode
  471. @node PopWindows "Yak Documentation: PopWindows"
  472. @prev AutoPopToFront
  473. @next AutoPopToFront
  474. @toc  AutoPopToFront
  475. @{b}PopWindows@{ub}
  476. AutoPopToFront will work on windows whose title matches this pattern.
  477. See also @{" AmigaDos Patterns " link PatternHelp}.
  478. @endnode
  479. ## Default title
  480. @node DefaultTitle "Yak Documentation: Default Title"
  481. @prev DefaultTitle
  482. @next DefaultTitle
  483. @toc  DefaultTitle
  484. @{b}Default Title of a screen@{ub}
  485. The  default title  of a screen  doesn't vary.  Windows of applications can
  486. change the screen title but not the default screen title.
  487. For  example,  the  title  of  the  workbench  screen  is often  changed by
  488. applications when their own windows are active but the default title of the
  489. workbench screen remains unchanged.
  490. So,  when setting a screen pattern  you should use the default title of the
  491. screen which can be found when no window is active on this screen.
  492. Most of the time,  finding the default title  will be very easy but in some
  493. rare cases you will gain to use an utility such as ARTM.
  494. See also @{" AmigaDos Patterns " link PatternHelp}.
  495. @endnode
  496. ##      PATTERNHELP
  497. @node PatternHelp "Yak Documentation: AmigaDos Patterns"
  498. @prev PatternHelp
  499. @next PatternHelp
  500. @toc  PatternHelp
  501. @{b}AmigaDos Patterns@{ub}
  502. AmigaDos   patterns   are   used   to   include/exclude  a  list  of  named
  503. screens/windows for a particular feature.  These pattern specifications aid
  504. in compatibility with other programs you may use.
  505. Pattern  matching  is  case-sensitive.  "Amiga" is not the same as "AMIGA".
  506. The standard AmigaDos patterns available are:
  507.         ?       Matches a single character.
  508.         #       Matches the following expression 0 or more times.
  509.         (ab|cd) Matches any one of the items separated by '|'.
  510.         ~       Negates the following expression.  It matches all strings
  511.                 that do not match the expression (aka ~(foo) matches all
  512.                 strings that are not exactly "foo"
  513.         [abc]   Character class: matches any of the characters in the class.
  514.         a-z     Character range (only within character classes).
  515.         %       Matches 0 characters always (useful in "(foo|bar|%)").
  516.         *       Synonym for "#?", not available by default.  Available if
  517.            @{"Wild star" link Wildstar} option is set.
  518. If  you're  not  used to patterns, you may find all of that quite daunting.
  519. Consult your system manual for further details.  There are two basic things
  520. you'll  want:  either  a  finite  list  of names that the feature should be
  521. enabled  on, or a finite list for which it should be disabled.  To ENABLE a
  522. feature on all objects (be they screens or windows, as appropriate) use the
  523. "#?"  pattern (matches everything).  To enable a feature on N objects named
  524. "name1" to "nameN", use
  525.         (name1|name2| ... |nameN)
  526. and to DISABLE the feature for these names, prepend a tilde ~, viz.
  527.         ~(name1|name2| ... |nameN)
  528. An example: I don't want AutoPopToFront popping the Workbench window or any
  529. Protext (WP from Arnor) window, so exclude them with the pattern
  530.         ~(Workbench|#?Arnor#?)
  531. Note that the second 'name' is actually a pattern, which matches any title
  532. with the text "Arnor" in it.
  533. Another  example:  I  don't want AutoActivation on Directory Opus's screen.
  534. It  doesn't show its title in the program so I have to use ARTM or Xoper to
  535. find  the  screen's  default tilte, and find that it's "DOPUS.1". Figuring
  536. that the "1"  would  bump  to "2" if I ran two copies, I decide to exclude
  537. all DOpus screens using
  538.         ~(DOPUS#?)
  539. Yet another example : I  don't want AutoActivation on BrowserII's screen.
  540. The defaul title (when no window is active) is BrowserII followed by the
  541. names of the authors and the copyright years. As these years will evolve,
  542. I decide to exclude BrowserII screen by using :
  543.         ~(BrowserII#?)
  544. Note  :  Screens  or  windows  with titles that are unset (i.e.  are NULL)
  545. always pass the patterns.
  546. @endnode
  547. ##   MOUSE CYCLING
  548. @node MouseCycling "Yak Documentation: Mouse Cycling Window"
  549. @prev MainWindow
  550. @next Blanking
  551. @{b}Mouse Cycling Window@{ub}
  552. Clicking  on the "Mouse Cycling"  gadget opens up a new window which allows
  553. you to configure some cycling actions on reception of mouse events.
  554. These actions are:
  555.    @{" Window To Front " link ClickToFront}
  556.    @{" Window To Back  " link ClickToBack}
  557.    @{" Cycle Screens   " link CycleScreens}
  558. When you've finished editing, click the @{b}Ok@{ub} gadget on  to return to the main
  559. settings window.
  560. @endnode
  561. @node ClickToFront "Yak Documentation: ClickToFront"
  562. @prev MouseCycling
  563. @next ClickToBack
  564. @toc  MouseCycling
  565. @{b}Window to front@{ub}
  566. This allows you to bring a window to the front of others via mouse buttons.
  567. ClickToFront settings:
  568.   - @{" Active " link Active}
  569.   - @{" ScreenToFront " link ScreenToFront}
  570.   - @{" Required Clicks " link RequiredClicks}
  571.   - @{" Exclude Workbench Window " link ExcludeWorkbenchWindow}
  572.   - @{" Include Screens " link IncludeScreens}
  573.   - @{" Definition " link "Hotkey Description String"}
  574. Default: will bring any window (except for the Workbench window) to front
  575.          by double-clicking over it with left mouse button.
  576. @endnode
  577. @node Active "Yak Documentation"
  578. @prev MouseCycling
  579. @next MouseCycling
  580. @toc  MouseCycling
  581. @{b}Active@{ub}: use this gadget to enable or to disable the correspounding action.
  582. @endnode
  583. @node ScreenToFront "Yak Documentation: ScreenToFront"
  584. @prev MouseCycling
  585. @next MouseCycling
  586. @toc  MouseCycling
  587. @{b}Screen To Front@{ub}: when there's no window or a backdrop window under mouse, 
  588.                  clicking  to  front will bring to front the screen under
  589.                  mouse.
  590. @endnode
  591. @node RequiredClicks "Yak Documentation: Required Clicks"
  592. @prev MouseCycling
  593. @next MouseCycling
  594. @toc  MouseCycling
  595. @{b}Required Clicks@{ub}: number of mouse clicks required to trig the action.
  596. @endnode
  597. @node IncludeScreens "Yak Documentation: Include Screens"
  598. @prev MouseCycling
  599. @next MouseCycling
  600. @toc  MouseCycling
  601. @{b}IncludeScreens@{ub}: an pattern on screens default title which allows you to 
  602.                 specify on which screens this action is active.
  603. See @{" AmigaDos Patterns " link PatternHelp}.
  604. @endnode
  605. @node ExcludeWorkbenchWindow "Yak Documentation: Exclude Workbench Window"
  606. @prev MouseCycling
  607. @next MouseCycling
  608. @toc  MouseCycling
  609. @{b}Exclude Workbench Window@{ub}: when on means that ClickToFront action is 
  610.                           disabled for the workbench window.
  611. @endnode
  612. @node ClickToBack "Yak Documentation: ClickToBack"
  613. @prev ClickToFront
  614. @next CycleScreens
  615. @toc  MouseCycling
  616. @{b}Window to back@{ub}
  617. This allows you to push a window to the back of others via mouse buttons.
  618. ClickToBack settings:
  619.   - @{" Active " link Active}
  620.   - @{" ScreenToBack " link ScreenToBack}
  621.   - @{" Required Clicks " link RequiredClicks}
  622.   - @{" Include Screens " link IncludeScreens}
  623.   - @{" Definition " link "Hotkey Description String"}
  624. Default: will push any window to the back of others by pressing and holding 
  625.          the left mousebutton, then clicking the right mousebutton.
  626. @endnode
  627. @node ScreenToBack "Yak Documentation: Screen to back"
  628. @prev MouseCycling
  629. @next MouseCycling
  630. @toc  MouseCycling
  631. @{b}Screen To Back@{ub}: when there's no window or a backdrop window under mouse, 
  632.                 clicking  to back will bring  the screen  under mouse to
  633.                 back.
  634. @endnode
  635. @node CycleScreens "Yak Documentation: CycleScreens"
  636. @prev ClickToBack
  637. @next MouseCycling
  638. @toc  MouseCycling
  639. @{b}Screens cycling@{ub}
  640. This allows you to cycle through screens via mouse buttons. 
  641. CycleScreens settings:
  642.   - @{" Active " link Active}
  643.   - @{" Required Clicks " link RequiredClicks}
  644.   - @{" Include Screens " link IncludeScreens}
  645.   - @{" Definition " link "Hotkey Description String"}
  646. Default: will cycle through all screens by double-clicking with middle 
  647.          mouse button.
  648. @endnode
  649. ##   BLANKING WINDOW
  650. @node Blanking "Yak Documentation: Blanking Window"
  651. @prev MouseCycling
  652. @next Miscellaneous
  653. @{b}Blanking Window@{ub}
  654. This window contains a few gadgets to control blanking:
  655.    @{" MouseBlank Method " link MouseBlankMethod}
  656.    @{" Blank mouse on key pressed " link MouseBlankOnKey}
  657.    @{" ScreenBlank Method " link ScreenBlankMethod}
  658.    @{" TimeOut " link TimeOut}
  659. When you've finished editing, click the @{b}Ok@{ub} gadget on to return to the main
  660. settings window.
  661. @endnode
  662. @node MouseBlankMethod "Yak Documentation: MouseBlank Method"
  663. @prev Blanking
  664. @next MouseBlankOnKey
  665. @toc  Blanking
  666. @{b}MouseBlank Method@{ub}
  667. This  gadget  determines  the method by which the mouse pointer is blanked.
  668. @{b}None@{ub}    disables mouse-blanking altogether.
  669. @{b}Sprites@{ub} means blank mouse by disabling (all) sprites
  670. @{b}Copper@{ub}  means blank mouse by modifying copper list. This latter
  671.         option only disables sprite 0 (the mouse-pointer), so terminal
  672.         programs using a sprite for the cursor work okay, but the method is
  673.         a bit less robust (the mouse occasionally comes back on).
  674. See also:  @{" Problems " link Problems}
  675. @endnode
  676. @node MouseBlankOnKey "Yak Documentation: Blank mouse on key pressed"
  677. @prev MouseBlankMethod
  678. @next ScreenBlankMethod
  679. @toc  Blanking
  680. @{b}Blank mouse on key pressed@{ub}
  681. This is a toggle if set, mouse pointer will be blanked as soon as you hit
  682. the keyboard. If it is not set, mouse will blanked only on time out.
  683. @endnode
  684. @node ScreenBlankMethod "Yak Documentation: ScreenBlank Method"
  685. @prev MouseBlankOnKey
  686. @next TimeOut
  687. @toc  Blanking
  688. @{b}ScreenBlank Method@{ub}
  689. This gadget determines the method by which the display is blanked.  
  690. @{b}None@{ub}         disables screen-blanking altogether 
  691. @{b}Black Screen@{ub} means blank display by opening a black screen with
  692.              the same displaymode as the frontmost screen 
  693. @{b}DMA@{ub}          means cutting off DMA channels. This option saves
  694.              some CPU cycles so it is well indicated for compilation or
  695.              3D rendering, however it may not work with some graphic cards. 
  696. @endnode
  697. @node TimeOut "Yak Documentation: TimeOut Settings"
  698. @prev ScreenBlankMethod
  699. @next Blanking
  700. @toc  Blanking
  701. @{b}TimeOut Settings@{ub}
  702. With this gadgets, you can set up timeout for screen and mouse blanking:
  703.    @{" ScreenTimeOut " link ScreenTimeOut}
  704.    @{" MouseTimeOut  " link MouseTimeOut}
  705. @endnode
  706. @node ScreenTimeOut "Yak Documentation: ScreenTimeOut"
  707. @prev TimeOut
  708. @next MouseTimeOut
  709. @toc  TimeOut
  710. @{b}ScreenTimeOut@{ub}
  711. If  no user input (mouse or keyboard) occurs over this period (of seconds),
  712. the  screen will blank.  
  713. This is only operational if the @{"ScreenBlank Method" link ScreenBlankMethod} is not set to "None".
  714. @endnode
  715. @node MouseTimeOut "Yak Documentation: MouseTimeOut"
  716. @prev ScreenTimeOut
  717. @next TimeOut
  718. @toc  TimeOut
  719. @{b}MouseTimeOut@{ub}
  720. If mouse isn't moved in the period specified, the mouse pointer will blank.
  721. This is only operational if the @{"MouseBlank Method" link MouseBlankMethod} is not set to "None".
  722. @endnode
  723. ##      MISCELLANEOUS WINDOW
  724. @node Miscellaneous "Yak Documentation: Miscellaneous Window"
  725. @prev Blanking
  726. @next Hotkeys
  727. @{b}Miscellaneous Window@{ub}
  728. This window contains a few other features controlled by these gadgets.
  729. They are:
  730.    @{" Click Volume    " link ClickVolume}
  731.    @{" Wild star       " link Wildstar}          @{" Black border    " link BlackBorder}
  732.    @{" No Click        " link NoClick}          @{" CapShift        " link CapShift}
  733.    @{" MMB Shift       " link MMBShift}          @{" UNIX Dirs       " link UNIXDirs}
  734.    @{" Full Workbench  " link FullWorkbench}          @{" UNIX Root       " link UNIXRoot}
  735. When you've finished editing, click the @{b}Ok@{ub} gadget on to return to the main
  736. settings window.
  737. @endnode
  738. @node ClickVolume "Yak Documentation: Click Volume"
  739. @prev Miscellaneous
  740. @next Wildstar
  741. @toc  Miscellaneous
  742. @{b}Click Volume@{ub}
  743. Controls  the volume of the KeyClick (the sound made when you press a key).
  744. A  volume  of  zero  means 'no click' (yes, that's obvious, but when set to
  745. zero, the audio device won't be opened at all).  Maximum volume is 64.
  746. Note that, when you don't release a key, the auto-repeat will simulate the
  747. same key pressed several times, but Yak will emit one click in order to
  748. avoid slowing down scrolling using arrow keys in a text editor for example.
  749. @endnode
  750. @node Wildstar "Yak Documentation: Wild star"
  751. @prev ClickVolume
  752. @next BlackBorder
  753. @toc  Miscellaneous
  754. @{b}Wild star@{ub}
  755. When  on,  enables  the  use of * as an AmigaDos pattern-matching character
  756. (like MSDOS and UNIX *).  (This is what the StarBurst program does.)
  757. @endnode
  758. @node BlackBorder "Yak Documentation: Black Border"
  759. @prev WildStar
  760. @next NoClick
  761. @toc  Miscellaneous
  762. @{b}Black Border@{ub}
  763. When on, Yak will add a black border to all your screens. This feature is
  764. only available in 3.0+ system version as it uses a new flag of the graphics
  765. library.
  766. @endnode
  767. @node NoClick "Yak Documentation: No Click"
  768. @prev BlackBorder
  769. @next UNIXDirs
  770. @toc  Miscellaneous
  771. @{b}No Click@{ub}
  772. When  on,  stops your floppy drives from "clicking" when they're empty.
  773. @endnode
  774. @node UNIXDirs "Yak Documentation: UNIX Dirs"
  775. @prev NoClick
  776. @next UNIXRoot
  777. @toc  Miscellaneous
  778. @{b}UNIX Dirs@{ub}
  779. When on, allow you to use:
  780.    '..' as parent directory
  781.    '.'  as current directory 
  782. in all directories operations.
  783. This is done by patching the following standard libraries functions:
  784.      AssignLate
  785.      AssignPath
  786.      CreateDir
  787.      DeleteFile
  788.      LoadSeg
  789.      Lock
  790.      MakeLink
  791.      MatchFirst
  792.      NewLoadSeg
  793.      Open
  794.      ParsePattern
  795.      Rename
  796.      SetComment
  797.      SetFileDate
  798.      SetProtection
  799. @endnode
  800. @node UNIXRoot "Yak Documentation: UNIX Root"
  801. @prev UNIXDirs
  802. @next MMBShift
  803. @toc  Miscellaneous
  804. @{b}UNIX Root@{ub}
  805. When on, allow you to use:
  806.    '/'  as root directory of current device (equivalent to amigados ':')
  807. in all directories operations.
  808. This feature is only available when @{" UNIX Dirs " link UNIXDirs} is on.
  809. WARNING: as this option changes the meaning of a symbol understood by
  810.          amigados, it may confuse some applications.
  811. @endnode
  812. @node MMBShift "Yak Documentation: MMB Shift"
  813. @prev MMBShift
  814. @next FullWorkbench
  815. @toc  Miscellaneous
  816. @{b}MMB Shift@{ub}
  817. When on, Yak will translate the middle mouse button (on a 3 buttons mouse)
  818. into the left shift key.
  819. More accurately, this will happen only when pressing left mouse button
  820. while holding middle mouse button. This make easier to select multiple
  821. icons on the workbench or multiple files in a file-requester without having
  822. to touch keyboard.
  823. Other usages of middle button in other key combinations won't get changed.
  824. @endnode
  825. @node FullWorkbench "Yak Documentation: Full Workbench"
  826. @prev UNIXDirs
  827. @next CapShift
  828. @toc  Miscellaneous
  829. @{b}Full Workbench@{ub}
  830. When on, the workbench title bar will be hidden and the workbench backdrop
  831. window will be expanded so that it covers the whole workbench screen.
  832. This is useful if you use a backdrop picture and want it to occupy the
  833. whole space on your workbench screen.
  834. The screen cycling gadget (in top right screen corner) will be hidden too
  835. but that's not a problem because you can cycle trough screens by using Yak's
  836. @{" Mouse Cycling " link MouseCycling} feature or @{" Screen to Back " link "Screen to Back"} hotkey action.
  837. Note: This has no effect if you don't use a backdrop workbench window.
  838.           Some applications like GNU emacs makes the workbench title bar back
  839.       to visible when they start.
  840. @endnode
  841. @node CapShift "Yak Documentation: CapShift"
  842. @prev FullWorkbench
  843. @next Miscellaneous
  844. @toc  Miscellaneous
  845. @{b}CapShift@{ub}
  846. When on, the 'SHIFT' keys render the 'Caps Lock' key ineffective temporarily.
  847. Note: the CapShift only works in printables characters.
  848. @endnode
  849. ##    HOTKEYS WINDOW
  850. @node Hotkeys "Yak Documentation: Hotkeys Window"
  851. @prev Miscellaneous
  852. @next Copyright
  853. @{b}Hotkeys Window@{ub}
  854. Clicking the "Edit Hotkey" gadget on opens up a new window which lets you
  855. create, edit and delete hotkeys.  Making a key a hotkey means that when the
  856. key is pressed, Yak performs some action (of which there are many to choose
  857. from).   Hotkeys  are defined using a hotkey description string,  which is
  858. a very  flexible  method  of  defining input events.
  859. You  can  have  as many hotkeys as you like, and each action may pertain to
  860. more than one hotkey.
  861. There are two lists in the Hotkeys window:
  862. - the left-hand lists the available @{"actions" link "Hotkey Actions"},
  863. - the right-hand lists the hotkeys currently defined for the selected
  864.   action.
  865. To  add a new hotkey, first  select  the action  you wish it to perform (by
  866. clicking  its  name  in  the left-hand list).  Then press the @{b}Add@{ub} button
  867. below the Hotkey list.
  868. To delete a hotkey from Yak's list, use the @{b}Delete@{ub} button.
  869. To edit an existing hotkey, first click its name the right-hand list. Then,
  870. to change:
  871. - its name, enter the new name into the gadget below the list;
  872. - its state, use the cycle gadget;
  873. - its @{"hotkey description string" link "Hotkey Description String"}, press the @{b}Definition@{ub} button;
  874. - its @{"options" link OptionsWindow}, press the @{b}Option@{ub} button.
  875. When  you've finished editing hotkeys, click the @{b}Ok@{ub} gadget on to return
  876. to the main settings window.
  877. See: @{" Hotkey Actions            " link "Hotkey Actions"}
  878.      @{" Hotkey Description String " link "Hotkey Description String"}
  879. @endnode
  880. ##      KEYDEF WINDOW
  881. @node "Hotkey Description String" "Yak Documentation: Hotkey Description String"
  882. @next "Automatic Definition"
  883. @toc "Hotkey Description String"
  884. @{b}Hotkey Description String@{ub}
  885. Here, you can define or modify hotkeys used by Yak.
  886. The current hotkey description is displayed within the string gadget.
  887. There are two transparent ways to define a hotkey:
  888.    @{" Automatic Definition " link "Automatic Definition"}
  889.    @{" Manual Definition    " link "Manual Definition"}
  890. Once you've finished editing a hotkey, click the @{b}Ok@{ub} gadget on to register
  891. the new description string.
  892. Click the @{b}Cancel@{ub} gadget on to abort the hotkey definition.
  893. @endnode
  894. @node "Automatic Definition" "Yak Documentation: Automatic Definition"
  895. @prev "Hotkey Description String"
  896. @next "Manual Definition"
  897. @toc "Hotkey Description String"
  898. @{b}Automatic Definition@{ub}
  899. Simply choose the hotkey class (by clicking on the left-hand cycle gadget);
  900. then hit the keys and mouse buttons, you want to use: Yak convert them into
  901. an input description string.
  902. Toggle mode is used.  So, if you press a key twice it will be removed from
  903. the defintion.
  904. With the stroke gadget (the right-hand cycle gadget) you can set the method
  905. by which the hotkey will be activated.
  906. See also:  @{" More on Hotkeys " link MoreHotkeys}
  907. @endnode
  908. @node "Manual Definition" "Yak Documentation: Manual Definition"
  909. @prev "Automatic Definition"
  910. @next MoreHotkeys
  911. @toc "Hotkey Description String"
  912. @{b}Manual Definition@{ub}
  913. Click on the string gadget and type in the hotkey description string: Yak
  914. parses string and updates gadgets.
  915. WARNING: The commodities.library is not bug free:
  916.          -here is a wrong description string:
  917.                `NumericPad a'
  918.          -here are some unusable description strings:
  919.                `NumericPad [' and `NumericPad ]'  (with a french keyboard)
  920. See also:  @{" More on Hotkeys " link MoreHotkeys}
  921. @endnode
  922. ##    OPTIONS WINDOW
  923. @node "OptionsWindow" "Yak Documentation: Hotkey Options Window"
  924. @prev "Hotkey Actions"
  925. @next "Hotkey Description String"
  926. @toc  Hotkeys
  927. @{b}Hotkey Options Window@{ub}
  928. Here, you can define or modify options used by each hotkey.
  929. Each action type has its own options editing window.
  930. Once you've finished editing the options, click on the @{b}Ok@{ub} gadget to register them.
  931. Click the @{b}Cancel@{ub} gadget on to abort editing.
  932. See: @{" Hotkey Actions " link "Hotkey Actions"} list.
  933. @endnode
  934. ##      HOTKEY ACTIONS
  935. @node "Hotkey Actions" "Yak Documentation: Hotkey Actions"
  936. @prev Hotkeys
  937. @next OptionsWindow
  938. @toc  Hotkeys
  939. @{b}Hotkey Actions@{ub}
  940. The many actions available are:
  941.    @{" Execute Command           " link "Execute Command"}
  942.    @{" Close Window              " link "Close Window"}
  943.    @{" Zip Window                " link "Zip Window"}
  944.    @{" Shrink Window             " link "Shrink Window"}
  945.    @{" Expand Window             " link "Expand Window"}
  946.    @{" Move Window               " link "Move Window"}
  947.    @{" Cycle Windows             " link "Cycle Windows"}
  948.    @{" Open Palette              " link "Open Palette"}
  949.    @{" Screen to Front           " link "Screen to Front"}
  950.    @{" Screen to Back            " link "Screen to Back"}
  951.    @{" Move Screen               " link "Move Screen"}
  952.    @{" Activate Workbench        " link "Activate Workbench"}
  953.    @{" Blank Display             " link "Blank Display"}
  954.    @{" Insert Text               " link "Insert Text"}
  955.    @{" Insert Date               " link "Insert Date"}
  956.    @{" Show Yak Interface        " link "Show Yak Interface"}
  957.    @{" Set default public screen " link "Set default public screen"}
  958.    @{" Menu shortcut             " link "Menu shortcut"}
  959. @endnode
  960. @node "Execute Command" "Yak Documentation: Execute Command"
  961. @prev "Hotkey Actions"
  962. @next "Close Window"
  963. @toc "Hotkey Actions"
  964. @{b}Execute Command@{ub}
  965. o @{b}Action@{ub}:
  966.   Executes a CLI command or an ARexx script.
  967.   The program is executed asynchronously.
  968. o @{b}Options@{ub}:
  969.   - @{" Action on screens " link "Action On Screen"} (default: 'no screen change')
  970.   - Specifications of program:
  971.       - @{" Type       " link PrgType} (default: 'CLI')
  972.       - @{" Stack size " link PrgStack} (default: '4000')
  973.       - @{" Priority   " link PrgPriority} (default: '0')
  974.       - @{" AREXX Port " link PrgAREXXPort} (default: 'AREXX')
  975.       - @{" Name       " link PrgName}
  976. @endnode
  977. @node "Action on screen" "Yak Documentation: Action on screen"
  978. @prev "Action on screen"
  979. @next "Action on screen"
  980. @toc "Hotkey Actions"
  981. @{b}Action on screen@{ub}
  982. You can set the screen which should be moved to front before the program
  983. is started. This one can be:
  984.     -the current screen,
  985.     -the Workbench,
  986.     -the default public screen.
  987. @endnode
  988. @node PrgType "Yak Documentation: Program type"
  989. @prev PrgType
  990. @next PrgStack
  991. @toc "Hotkey Actions"
  992. @{b}Program type@{ub}
  993. Two different types of programs are supported: 
  994.     -CLI commands,
  995.     -ARexx scripts.
  996. @endnode
  997. @node PrgStack "Yak Documentation: Stack size"
  998. @prev PrgType
  999. @next PrgPriority
  1000. @toc "Hotkey Actions"
  1001. @{b}Stack size@{ub}
  1002. This sets the stack size of the new process which runs the program.
  1003. Note: only available for CLI commands.
  1004. @endnode
  1005. @node PrgPriority "Yak Documentation: Priority"
  1006. @prev PrgStack
  1007. @next PrgAREXXPort
  1008. @toc "Hotkey Actions"
  1009. @{b}Priority@{ub}
  1010. This sets the priority of the new process which runs the program.
  1011. Note: only available for CLI commands.
  1012. @endnode
  1013. @node PrgAREXXPort "Yak Documentation: AREXX Port"
  1014. @prev PrgPriority
  1015. @next PrgName
  1016. @toc "Hotkey Actions"
  1017. @{b}AREXX Port@{ub}
  1018. This sets the AREXX port where to send the AREXX command. If you are using
  1019. a simple AREXX script the AREXX Port should be the default one: AREXX.
  1020. Note: only available for AREXX commands.
  1021. @endnode
  1022. @node PrgName "Yak Documentation: Program name"
  1023. @prev PrgPriority
  1024. @next PrgName
  1025. @toc "Hotkey Actions"
  1026. @{b}Program to execute@{ub}
  1027. The file name of the program to start.
  1028. There is no need to prepend a 'run' or a 'rx' command. 
  1029. @{b}Some CLI commands@{ub}:
  1030.   A hotkey to open a shell:
  1031.     This  is  traditionally attached to the hotkey "lcommand esc", and mine
  1032.     is set up to run the command
  1033.         "NewShell CON:79/177/582/78/AmigaShell/CLOSE/ALT2/58/660/197"
  1034.     Note  the  use  of  the ALT flag in the console specification, which is
  1035.     poorly  documented (read "not mentioned").  I actually use two hotkeys,
  1036.     one to start a normal shell, and one to start a CShell.
  1037.   A hotkey to free unused memory:
  1038.     SAS/C  uses  shared libraries that can often fill precious chip memory.
  1039.     I have a hotkey set up with the command "avail >nil: flush" which frees
  1040.     this memory.
  1041.   A hotkey to list contents of each disk inserted:
  1042.     Set the hotkey to "diskinserted", and the command to "Dir df0:".
  1043. @{b}Note@{ub}:  if the CLI command  generates  any  output  (or  requires input),  a
  1044. console  window will open. You can of course specify redirection (as in the 
  1045. shell).
  1046. See also:  @{" Problems " link Problems}
  1047. @endnode
  1048. @node "Close Window" "Yak Documentation: Close Window"
  1049. @prev "Execute Command"
  1050. @next "Zip Window"
  1051. @toc "Hotkey Actions"
  1052. @{b}Close Window@{ub}
  1053. o @{b}Action@{ub}:
  1054.   Close the selected window (this is equivalent to clicking on the window's
  1055.   close gadget).
  1056. o @{b}Options@{ub}:
  1057.   - @{" Window selection " link "Window Selection"} (default: 'active window').
  1058. @endnode
  1059. @node "Window selection" "Yak Documentation: Window selection"
  1060. @prev "Window selection"
  1061. @next "Window selection"
  1062. @toc "Hotkey Actions"
  1063. @{b}Window Selection@{ub}
  1064. You may now specify on which window this hotkey is active.
  1065. This one can be:
  1066.   -the Active Window,
  1067.   -the Window Under Mouse,
  1068.   -a window whose title match with the @{pattern link PatternHelp} specified.
  1069. @endnode
  1070. @node "Zip Window" "Yak Documentation: Zip Window"
  1071. @prev "Close Window"
  1072. @next "Shrink Window"
  1073. @toc "Hotkey Actions"
  1074. @{b}Zip Window@{ub}
  1075. o @{b}Action@{ub}:
  1076.   Zip the selected window (this is equivalent to clicking on the window's
  1077.   'Toggle size' gadget).
  1078. o @{b}Options@{ub}:
  1079.   - @{" Window selection " link "Window Selection"} (default: 'active window').
  1080. @endnode
  1081. @node "Shrink Window" "Yak Documentation: Shrink Window"
  1082. @prev "Zip Window"
  1083. @next "Expand Window"
  1084. @toc "Hotkey Actions"
  1085. @{b}Shrink Window@{ub}
  1086. o @{b}Action@{ub}:
  1087.   Shrink the selected window.
  1088. o @{b}Options@{ub}:
  1089.   - @{" Window selection    " link "Window Selection"} (default: 'active window').
  1090.   - @{" Resizing parametres " link Resizing} (default: 'horizontaly' and 'verticaly'
  1091.                                      'keep the screen title bar visible').
  1092. @endnode
  1093. @node "Expand Window" "Yak Documentation: Expand Window"
  1094. @prev "Shrink Window"
  1095. @next "Move Window"
  1096. @toc "Hotkey Actions"
  1097. @{b}Expand Window@{ub}
  1098. o @{b}Action@{ub}:
  1099.   Expand the selected window.
  1100. o @{b}Options@{ub}:
  1101.   - @{" Window selection    " link "Window Selection"} (default: 'active window').
  1102.   - @{" Resizing parametres " link Resizing} (default: 'horizontaly' and 'verticaly'
  1103.                                      'keep the screen title bar visible').
  1104. @endnode
  1105. @node Resizing "Yak Documentation: Resizing parametres"
  1106. @prev Resizing
  1107. @next Resizing
  1108. @toc "Hotkey Actions"
  1109. @{b}Resizing parametres@{ub}
  1110. You may size the window: -horizontally,
  1111.                          -vertically,
  1112.                          -in two directions;
  1113. and keep the screen title bar visible.
  1114. @endnode
  1115. @node "Move Window" "Yak Documentation: Move Window"
  1116. @prev "Expand Window"
  1117. @next "Cycle Windows"
  1118. @toc "Hotkey Actions"
  1119. @{b}Move Window@{ub}
  1120. o @{b}Action@{ub}:
  1121.   Move the selected window.
  1122. o @{b}Options@{ub}:
  1123.   - @{" Window selection  " link "Window Selection"} (default: 'active window').
  1124.   - @{" Moving parametres " link Moving} (default: 'left upper corner').
  1125. @endnode
  1126. @node Moving "Yak Documentation: Moving parametres"
  1127. @prev Moving
  1128. @next Moving
  1129. @toc "Hotkey Actions"
  1130. @{b}Moving parametres (Screen/Window)@{ub}
  1131. You may move the screen/window: -horizontally,
  1132.                                 -vertically,
  1133.                                 -in two directions;
  1134. and keep: -the screen title bar visible (only available for the
  1135.                                          'Move Window' hotkeys),
  1136.           -the active window visible (only available for the
  1137.                                       'Move Screen' hotkeys).
  1138. @endnode
  1139. @node "Cycle Windows" "Yak Documentation: Cycle Windows"
  1140. @prev "Move Window"
  1141. @next "Open Palette"
  1142. @toc "Hotkey Actions"
  1143. @{b}Cycle Windows@{ub}
  1144. o @{b}Action@{ub}:
  1145.   Cycle windows. Useful for getting at deeply 'buried' windows.
  1146. o @{b}Options@{ub}:
  1147.   - @{" Screen selection          " link "Screen Selection"} (default: 'frontmost screen').
  1148.   - @{" Exclude workbench drawers " link "Exclude workbench drawers"} (default: 'no')
  1149.   - @{" Back cycle windows        " link "Back cycle windows"} (default: 'no')
  1150.   - @{" Activate only             " link "Activate only"} (default: 'no')
  1151.   - @{" By task name              " link "By task name"} (default: 'no')
  1152. @endnode
  1153. @node "Screen selection" "Yak Documentation: Screen selection"
  1154. @prev "Screen selection"
  1155. @next "Screen selection"
  1156. @toc "Hotkey Actions"
  1157. @{b}Screen Selection@{ub}
  1158. You can now specify on which screen this action is active.
  1159. This one can be:
  1160.   -the Rearmost Screen  (only available for the
  1161.                          'Screen To Front' hotkeys),
  1162.   -the FrontMost Screen (not available for the
  1163.                          'Screen To Front' hotkeys),
  1164.   -the Active Screen,
  1165.   -the Screen Under Mouse,
  1166.   -a screen whose title match with the pattern specified.
  1167.    (see @{" Default Title " link DefaultTitle} and @{" AmigaDos Patterns " link PatternHelp} ).
  1168. @endnode
  1169. @node "Exclude workbench drawers" "Yak Documentation: Exclude workbench drawers"
  1170. @prev "Exclude workbench drawers"
  1171. @next "Exclude workbench drawers"
  1172. @toc "Hotkey Actions"
  1173. @{b}Exclude Workbench drawers@{ub}
  1174. When selected, the hotkey is disabled on the Workbench drawers.
  1175. @endnode
  1176. @node "Back cycle windows" "Yak Documentation: Back cycle windows"
  1177. @prev "Back cycle windows"
  1178. @next "Back cycle windows"
  1179. @toc "Hotkey Actions"
  1180. @{b}Back cycle windows@{ub}
  1181. Cycle windows in the other direction.
  1182. @endnode
  1183. @node "Activate only" "Yak Documentation: Activate only"
  1184. @prev "Activate only"
  1185. @next "Activate only"
  1186. @toc "Hotkey Actions"
  1187. @{b}Activate only@{ub}
  1188. When off, it causes windows to be depth re-arranged, this is the default
  1189. behavior well know by Yak 1.x users..
  1190. When on, windows stay as they are, they just get activated.
  1191. @endnode
  1192. @node "By task name" "Yak Documentation: By task name"
  1193. @prev "By task name"
  1194. @next "By task name"
  1195. @toc "Hotkey Actions"
  1196. @{b}By task name@{ub}
  1197. When on,  you can  now specify a @{" pattern " link PatternHelp}  on the name of  the task  which
  1198. handles some windows.
  1199. To find  the name of a task  attached to a window,  you can use ARTM and in
  1200. the  window description,  you will find  the name of this task  on the line
  1201. "UserPort: ... mp-SigTask".
  1202. Some examples:
  1203. To exclude ToolManager windows (docks), you can use the following pattern:
  1204.       "~(ToolManagerHandler)"
  1205. To cycle only BrowserII windows, you can use the following pattern:
  1206.       "#?BrowserII#?"
  1207. @endnode
  1208. @node "Open Palette" "Yak Documentation: Open Palette"
  1209. @prev "Cycle Windows"
  1210. @next "Screen to front"
  1211. @toc "Hotkey Actions"
  1212. @{b}Open Palette@{ub}
  1213. o @{b}Action@{ub}:
  1214.   Open a palette.
  1215. o @{b}Options@{ub}:
  1216.   - @{" action on screens " link "Action On Screen"} (default: 'no screen change')
  1217. The palette is run asynchronously, and  you  can  open  as many as you
  1218. want (subject to memory).  However, Yak cannot  be  terminated  while
  1219. palettes remain open.
  1220. NOTE:  You  must  have  reqtools.library  installed on your system for this
  1221. action to work.
  1222. WARNING:  Always close the palette window before causing the screen it's on
  1223. to  close,  otherwise  you'll  at least be left with an open screen, and at
  1224. worst crash the system.
  1225. @endnode
  1226. @node "Screen to front" "Yak Documentation: Screen to front"
  1227. @prev "Open Palette"
  1228. @next "Screen to back"
  1229. @toc "Hotkey Actions"
  1230. @{b}Screen to front@{ub}
  1231. o @{b}Action@{ub}:
  1232.   Bring the selected screen to front.
  1233. o @{b}Options@{ub}:
  1234.   - @{" Screen selection " link "Screen Selection"} (default: 'rearmost screen').
  1235. See also:  @{" Screens Activation " link ScreensActivation}
  1236. @endnode
  1237. @node "Screen to back" "Yak Documentation: Screen to back"
  1238. @prev "Screen to front"
  1239. @next "Move Screen"
  1240. @toc "Hotkey Actions"
  1241. @{b}Screen to back@{ub}
  1242. o @{b}Action@{ub}:
  1243.   Push the selected screen behind all others.
  1244. o @{b}Options@{ub}:
  1245.   - @{" Screen selection " link "Screen Selection"} (default: 'frontmost screen').
  1246. See also:  @{" Screens Activation " link ScreensActivation}
  1247. @endnode
  1248. @node "Move Screen" "Yak Documentation: Move Screen"
  1249. @prev "Screen to back"
  1250. @next "Activate Workbench"
  1251. @toc "Hotkey Actions"
  1252. @{b}Move Screen@{ub}
  1253. o @{b}Action@{ub}:
  1254.   Move the selected screen.
  1255. o @{b}Options@{ub}:
  1256.   - @{" Screen selection  " link "Screen Selection"} (default: 'frontmost screen').
  1257.   - @{" Moving parametres " link Moving} (default: 'centre screen');
  1258. @endnode
  1259. @node "Activate Workbench" "Yak Documentation: Activate Workbench"
  1260. @prev "Move Screen"
  1261. @next "Blank Display"
  1262. @toc "Hotkey Actions"
  1263. @{b}Activate Workbench@{ub}
  1264. o @{b}Action@{ub}:
  1265.   Activate a Workbench window (and if necessary, bring the Workbench screen
  1266.   to  the  front). This  enables  you to access the Workbench menus without
  1267.   having  to find a Workbench window to activate (if, for instance, you had
  1268.   a shell window the size of the screen).
  1269. o @{b}Options@{ub}:
  1270.   NONE
  1271. @endnode
  1272. @node "Blank Display" "Yak Documentation: Blank Display"
  1273. @prev "Activate Workbench"
  1274. @next "Insert Text"
  1275. @toc "Hotkey Actions"
  1276. @{b}Blank Display@{ub}
  1277. o @{b}Action@{ub}:
  1278.   Immediately blank the display.
  1279. o @{b}Options@{ub}:
  1280.   NONE
  1281. @endnode
  1282. @node "Insert Text" "Yak Documentation: Insert Text"
  1283. @prev "Blank Display"
  1284. @next "Insert Date"
  1285. @toc "Hotkey Actions"
  1286. @{b}Insert Text@{ub}
  1287. o @{b}Action@{ub}:
  1288.   Insert text into the read stream.
  1289. o @{b}Options@{ub}:
  1290.   - @{"Text to be inserted  " link "Inserted Text"}
  1291.   - @{"Delay between 2 chars" link "Delay Inserted Text"}
  1292. @endnode
  1293. @node "Delay Inserted Text" "Yak Documentation: Delay between 2 chars"
  1294. @prev "Delay Inserted Text"
  1295. @next "Delay Inserted Text"
  1296. @toc "Hotkey Actions"
  1297. @{b}Delay between 2 chars@{ub}
  1298. Some programs of communication seem to prefer a slower speed when getting
  1299. their input from Yak. So by specifying a non zero delay you can adjust the
  1300. speed of the text insertion. The delay value is expressed in ticks which
  1301. mean 0.02 second, so by settings a delay of 50 ticks Yak would output one
  1302. char per second (quite slow ;-).
  1303. The default value is 0 which means full speed.
  1304. @endnode
  1305. @node "Inserted Text" "Yak Documentation: Text Format"
  1306. @prev "Inserted Text"
  1307. @next "Inserted Text"
  1308. @toc "Hotkey Actions"
  1309. @{b}Text format@{ub}
  1310. This string is preprocessed as follows:
  1311.         \n              converted to carriage-return
  1312.         \r              converted to carriage-return
  1313.         \t              converted to tab
  1314.         \\              converted to backslash \
  1315.         <hotkey desc>   converted to specified hotkey
  1316.         \<              converted to <
  1317. Because  of  this  preprocessing, insertion strings can perform many useful
  1318. tasks.  For example, I have a hotkey set up to insert my name and the date,
  1319. using the argument string (without the quotes):
  1320.         "Martin W Scott, <lcommand d>"
  1321. Here, the hotkey "lcommand d" is another Yak hotkey I have set up to insert
  1322. the  date.  By using more complicated strings, you can create simple macros
  1323. for other programs.
  1324. CAVEAT: Embedded hotkey strings, though useful, should be used with care.
  1325. In particular, you must avoid recursive definitions, e.g.
  1326.         f1 insert text  "<f2>"
  1327.         f2 insert text  "<f1>"
  1328. Pressing  f1  or f2 results in an endless loop.  If you are silly enough to
  1329. do this, start the Commodities exchange and make Yak inactive.  Then select
  1330. the  Exchange's  Show  Interface  gadget  and delete/redefine the offending
  1331. hotkey(s).
  1332. Another  thing to be aware of is that strings that call other hotkeys (e.g.
  1333. the date insertion example above) may not work as you might think.  Suppose
  1334. the  Argument  string  was  "<lcommand d>\n".  This would actually create a
  1335. carriage  return  and  THEN  the  date,  because  by  the time Yak gets the
  1336. "lcommand d" hotkey, the carriage return has gone through the input handler
  1337. and been sent to the active window.
  1338. @endnode
  1339. @node "Insert Date" "Yak Documentation: Insert Date"
  1340. @prev "Insert Text"
  1341. @next "Show Yak Interface"
  1342. @toc "Hotkey Actions"
  1343. @{b}Insert Date@{ub}
  1344. o @{b}Action@{ub}:
  1345.   Insert the date  into  the  read-stream (and so into the currently active
  1346.   window).
  1347. o @{b}Options@{ub}:
  1348.   - @{"Date format string" link DateFmt}
  1349. If you are running  AmigaDos 2.1 or above,  you may customise the format of
  1350. the date inserted. This format is specified in the Argument string.
  1351. If  you are unlucky enough to  be  running  AmigaDos  2.0,  the date  is in
  1352. standard DD-MMM-YY format.
  1353. @endnode
  1354. @node "Show Yak Interface" "Yak Documentation: Show Yak Interface"
  1355. @prev "Insert Date"
  1356. @next "Set default public screen"
  1357. @toc "Hotkey Actions"
  1358. @{b}Show Yak Interface@{ub}
  1359. o @{b}Action@{ub}:
  1360.   Launch  Yak's preferences editor.
  1361.   This is the same function that the CX_POPKEY hotkey performs.
  1362. o @{b}Options@{ub}:
  1363.   - @{" action on screens " link "Action On Screen"} (default: 'no screen change')
  1364. @endnode
  1365. @node "Set default public screen" "Yak Documentation: Set default public screen"
  1366. @prev "Show Yak Interface"
  1367. @next "Menu shortcut"
  1368. @toc "Hotkey Actions"
  1369. @{b}Set default public screen@{ub}
  1370. o @{b}Action@{ub}:
  1371.   Set  the current screen as  the default one.   This will work only if the
  1372.   current screen is a public one.
  1373. o @{b}Options@{ub}:
  1374.   NONE
  1375. @endnode
  1376. @node "Menu shortcut" "Yak Documentation: Menu shortcut"
  1377. @prev "Set default public screen"
  1378. @next "Hotkey Actions"
  1379. @toc "Hotkey Actions"
  1380. @{b}Menu shortcut@{ub}
  1381. o @{b}Action@{ub}:
  1382.   Sends an input event to @{b}menu of the current active window@{ub}, simulating a user
  1383.   choice in the menu (if any). This can be useful to add some keyboards
  1384.   shortcuts to applications that don't have ones or not enough.
  1385. o @{b}Options@{ub}:
  1386.   - @{" Menu numbers " link MenuNumbers}.
  1387. @endnode
  1388. @node MenuNumbers "Yak Documentation: Menu numbers"
  1389. @prev MenuNumbers
  1390. @next MenuNumbers
  1391. @toc "Hotkey Actions"
  1392. @{b}Menu numbers@{ub}
  1393. The arguments specify the menu number,  the item number and optionnally the
  1394. subitem number.  All these numbers start at 0  following the Intuition rule
  1395. (i.e first menu is menu 0 and not 1).
  1396. Note  that  a bar label  counts  as an item,  if before the item you wan to
  1397. access  there are several bar labels  you must take them into account while
  1398. specifying the item number.
  1399. However,  don't be afraid  if you make mistakes  in specifying the argument
  1400. as  Yak do all needed  checkings  before sending  a menu event  in order to
  1401. avoid disturbing your application menu handler.
  1402. Here are some examples:
  1403. You find that the workbench has not enough menu shortcuts :
  1404. To access the "Last Message" item of the "Workbench" menu : 
  1405.        - Menu number: 0
  1406.        - Item number: 4
  1407.        - Subitem    : no
  1408. To access the "Only Icons" subitem of the "Show" sub menu of the "Window"
  1409. menu : - Menu number   : 1
  1410.        - Item number   : 7
  1411.        - Subitem       : yes
  1412.        - SubItem number: 0
  1413. @endnode
  1414. ##      DATEFORMAT HELP
  1415. @node DateFmt "Yak Documentation: Date format string"
  1416. @prev DateFmt
  1417. @next DateFmt
  1418. @toc "Hotkey Actions"
  1419. @{b}Date format string@{ub}
  1420. For  date-insertion  hotkeys,  you  must specify a locale-style date format
  1421. string  (and  need  to  be  running AmigaDos 2.1 or higher).  The available
  1422. formatting options under locale.library are as follows:
  1423.         %a - abbreviated weekday name
  1424.         %A - weekday name
  1425.         %b - abbreviated month name
  1426.         %B - month name
  1427.         %c - same as "%a %b %d %H:%M:%S %Y"
  1428.         %C - same as "%a %b %e %T %Z %Y"
  1429.         %d - day number with leading 0s
  1430.         %D - same as "%m/%d/%y"
  1431.         %e - day number with leading spaces
  1432.         %h - abbreviated month name
  1433.         %H - hour using 24-hour style with leading 0s
  1434.         %I - hour using 12-hour style with leading 0s
  1435.         %j - julian date
  1436.         %m - month number with leading 0s
  1437.         %M - the number of minutes with leading 0s
  1438.         %n - insert a linefeed
  1439.         %p - AM or PM strings
  1440.         %q - hour using 24-hour style
  1441.         %Q - hour using 12-hour style
  1442.         %r - same as "%I:%M:%S %p"
  1443.         %R - same as "%H:%M"
  1444.         %S - number of seconds with leadings 0s
  1445.         %t - insert a tab character
  1446.         %T - same as "%H:%M:%S"
  1447.         %U - week number, taking Sunday as first day of week
  1448.         %w - weekday number
  1449.         %W - week number, taking Monday as first day of week
  1450.         %x - same as "%m/%d/%y"
  1451.         %X - same as "%H:%M:%S"
  1452.         %y - year using two digits with leading 0s
  1453.         %Y - year using four digits with leading 0s
  1454. That  list  is  pretty  exhaustive,  and  should handle most needs; you can
  1455. insert your own text freely in the format string.  
  1456. Some examples:
  1457.         "The time is %X"        gives (e.g.)    "The time is 20:44:16"
  1458.         "Have a nice %A!"       gives (e.g.)    "Have a nice Monday!"
  1459. If  you  need  more  details, consult the AutoDocs on locale.library if you
  1460. have them.
  1461. @endnode
  1462. ## More on hotkeys
  1463. @node MoreHotkeys "Yak Documentation: More on Hotkeys"
  1464. @prev "Manual Definition"
  1465. @next "Hotkey Description String"
  1466. @toc "Hotkey Description String"
  1467. @{b}More on Hotkeys@{ub}
  1468. This information is adapted from the ToolManager V2 documentation, and
  1469. is reproduced with kind permission of that program's author, Stefan
  1470. Becker.
  1471. How to define a Hot Key
  1472. =======================
  1473.    This chapter describes how to define a Hot Key as an Input
  1474. Description String, which is then parsed by Commodities. Each time a
  1475. Hot Key is activated Commodities generates an event which is used by
  1476. a Commodity in the chain. A description string has the following
  1477. syntax:
  1478.      [<class>] {[-][<qualifier>]} [-][upstroke] [<key code>]
  1479.    All keywords are case insensitive.
  1480.    `class' describes the InputEvent class. This parameter is optional
  1481. and if it is missing the default `rawkey' is used. See InputEvent
  1482. classes.
  1483.    Qualifiers are "signals" that must be set or cleared by the time the
  1484. Hot Key is activated; otherwise no event will be generated. For each
  1485. qualifier that must be set you supply its keyword. All other qualifiers
  1486. are expected to be cleared by default. If you want to ignore a
  1487. qualifier, just set a `-' before its keyword. See Qualifiers.
  1488.    Normally a Hot Key event is generated when a key is pressed. If the
  1489. event should be generated when the key is released, supply the keyword
  1490. `upstroke'. When both press and release of the key should generate an
  1491. event, use `-upstroke'.
  1492.    The key code is depending on the InputEvent class. See Key codes.
  1493.    Note: Choose your hot keys *carefully*, because Commodities has a
  1494. high priority in the InputEvent handler chain (i.e. will override
  1495. existing definitions).
  1496. InputEvent classes
  1497. ===================
  1498.    Commodities supports most of the InputEvent classes that are
  1499. generated by the input.device. This section describes those classes
  1500. that are most useful for Hot Keys.
  1501. `rawkey'
  1502.      This is the default class and covers all keyboard events. For
  1503.      example `rawkey a' or `a' creates an event every time when the key
  1504.      "a" is pressed. You must specify a key code for this class. See
  1505.      rawkey key codes.
  1506. `rawmouse'
  1507.      This class describes all mouse button events. You must specify a
  1508.      key code for this class. See rawmouse key codes.
  1509. `diskinserted'
  1510.      Events of this class are generated when a disk is inserted in a
  1511.      drive. This class has no key codes.
  1512. `diskremoved'
  1513.      Events of this class are generated when a disk is removed from a
  1514.      drive. This class has no key codes.
  1515. Qualifiers
  1516. ===========
  1517.    Some keyword synonyms were added to Commodities V38. These are
  1518. marked with an `*'.
  1519. `lshift', `left_shift' *
  1520.      Left shift key.
  1521. `rshift', `right_shift' *
  1522.      Right shift key.
  1523. `shift'
  1524.      Either shift key.
  1525. `capslock', `caps_lock' *
  1526.      Caps lock key.
  1527. `caps'
  1528.      Either shift key or caps lock key.
  1529. `control', `ctrl' *
  1530.      Control key.
  1531. `lalt', `left_alt' *
  1532.      Left alt key.
  1533. `ralt', `right_alt' *
  1534.      Right alt key.
  1535. `alt'
  1536.      Either alt key.
  1537. `lcommand', `lamiga' *, `left_amiga' *, `left_command' *
  1538.      Left Amiga/Command key.
  1539. `rcommand', `ramiga' *, `right_amiga' *, `right_command' *
  1540.      Right Amiga/Command key.
  1541. `numericpad', `numpad' *, `num_pad' *, `numeric_pad' *
  1542.      This keyword *must* be used for any key on the numeric pad.
  1543. `leftbutton', `lbutton' *, `left_button' *
  1544.      Left mouse button. See note below.
  1545. `midbutton', `mbutton' *, `middlebutton' *, `middle_button' *
  1546.      Middle mouse button. See note below.
  1547. `rbutton', `rightbutton' *, `right_button' *
  1548.      Right mouse button. See note below.
  1549. `repeat'
  1550.      This qualifier is set when the keyboard repeat is active. Only
  1551.      useful for InputEvent class `rawkey'.
  1552.    Note: Commodities V37 has a bug which prevents the use of
  1553. `leftbutton', `midbutton' and `rbutton' as qualifiers. This bug is
  1554. fixed in V38.
  1555. Key codes
  1556. ==========
  1557.    Each InputEvent class has its own key codes:
  1558. Key codes for InputEvent class `rawkey'
  1559. ----------------------------------------
  1560.    Some keywords and synonyms were added to Commodities V38. These are
  1561. marked with an `*'.
  1562. `a'-`z', `0'-`9', ...
  1563.      ASCII characters.
  1564. `f1', `f2', ..., `f10', `f11' *, `f12' *
  1565.      Function keys.
  1566. `up', `cursor_up' *, `down', `cursor_down' *
  1567. `left', `cursor_left' *, `right', `cursor_right' *
  1568.      Cursor keys.
  1569. `esc', `escape' *, `backspace', `del', `help'
  1570. `tab', `comma', `return', `space', `spacebar' *
  1571.      Special keys.
  1572. `enter', `insert' *, `delete' *
  1573. `page_up' *, `page_down' *, `home' *, `end' *
  1574.      Numeric Pad keys. Each of these key codes *must* be used with the
  1575.      `numericpad' qualifier keyword!
  1576. Key codes for InputEvent class `rawmouse'
  1577. ------------------------------------------
  1578.    These keywords were added to Commodities V38. They are not available
  1579. in V37.
  1580. `mouse_leftpress'
  1581.      Press left mouse button.
  1582. `mouse_middlepress'
  1583.      Press middle mouse button.
  1584. `mouse_rightpress'
  1585.      Press right mouse button.
  1586.    Note: To use one of these key codes, you must also set the
  1587. corresponding qualifier keyword, e.g.
  1588.      rawmouse leftbutton mouse_leftpress
  1589. Examples for Hot Keys
  1590. ======================
  1591. `ralt t'
  1592.      Hold right Alt key and press "t"
  1593. `ralt lalt t'
  1594.      Hold left *and* right Alt key and press "t"
  1595. `alt t'
  1596.      Hold either Alt key and press "t"
  1597. `rcommand f2'
  1598.      Hold right Amiga key and press the second function key
  1599. `numericpad enter'
  1600.      Press the Enter key on the numeric pad
  1601. `rawmouse midbutton leftbutton mouse_leftpress'
  1602.      Hold middle mouse button and press the the left mouse button
  1603. `diskinserted'
  1604.      Insert a disk in any drive.
  1605. @endnode
  1606. ##      COPYRIGHT
  1607. @node Copyright "Yak Documentation: Copyright"
  1608. @prev Hotkeys
  1609. @next Problems
  1610. @{b}Copyright and Distribution@{ub}
  1611. Yak (the binary, sources and documentation) is
  1612. Copyright 
  1613.  1993, 1995 Ga
  1614. l Marziou & Philippe Bastiani. All Rights reserved.
  1615. Yak  is  freely  redistributable.   The  source  is  included,  and you are
  1616. permitted  to  modify  it for personal use, but any modifications made must
  1617. NOT  be distributed.  If you have made changes you think others would like,
  1618. send them to me and I'll include them in future versions.
  1619. Since  Yak  is  free,  it  comes  with  NO  WARRANTIES. The authors are not
  1620. responsible  for  any  loss or damage arising from the use of Yak; the user
  1621. takes all such responsibility.
  1622. No  charge may be made for Yak, other than a nominal copy fee.  Yak may not
  1623. be  distributed  with  a  commercial  product  without  the  authors  prior
  1624. consent.   Yak  must  be  distributed  with  all  documentation  intact and
  1625. unaltered, and preferably with source too.  Permission is expressly granted
  1626. to Fred Fish to distribute on his fine collection of disks.
  1627. Although Yak is freeware, DONATIONS WOULD BE GLADLY ACCEPTED, either money
  1628. or stuff you've written yourself.  See @{" Contacting the Authors " link Contact}.
  1629. @endnode
  1630. ##      PROBLEMS
  1631. @node Problems "Yak Documentation: Problems / Non Problems"
  1632. @prev Copyright
  1633. @next History
  1634. @{b}Problems / Non Problems@{ub}
  1635. There are a few problems that we are currently aware of, but there are also
  1636. problems that are not really problems.
  1637.     @{" Current Dir for Execute Command      " link Problem1}
  1638.     @{" OneKeyII and Yak                     " link Problem2}
  1639.     @{" Mouse blanking                       " link Problem3}
  1640.     @{" Mouse Cycling and Caps Lock          " link Problem4}
  1641. @endnode
  1642. @node Problem1 "Yak Documentation: Current Dir for Execute Command"
  1643. @prev Problems
  1644. @next Problem2
  1645. @toc  Problems
  1646. A shell created by a Execute Command hotkey doesn't have the current
  1647. directory as set at boot-time (in the Startup-Sequence).  It DOES retain
  1648. your path, though.  Your Shell-Startup file should set the CD and the stack
  1649. you need.  By default, processes started in this way have the system boot
  1650. disk (SYS:) as their current directory.
  1651. @endnode
  1652. @node Problem2 "Yak Documentation: OneKeyII and Yak"
  1653. @prev Problem1
  1654. @next Problem3
  1655. @toc  Problems
  1656. OneKeyII users: disable OnekeyII when you edit a hotkey!
  1657. @endnode
  1658. @node Problem3 "Yak Documentation: MouseBlanking"
  1659. @prev Problem2
  1660. @next Problem4
  1661. @toc  Problems
  1662. If  you're not happy with Yak's mouse-blanking, you could try the Commodore
  1663. MouseBlank  commodity (WB3.0), which should blank the mouse on all displays
  1664. correctly.On AGA machines, Copper blanking causes problems if you are using
  1665. an  highres  mouse  pointer : use Sprites  blanking or Commodore MouseBlank
  1666. instead.
  1667. @{b}NOTE FOR AMOS USERS@{ub}: I don't like AMOS (that's enough of my opinion), partly
  1668. because it is so system unfriendly.  It completely steals the input stream,
  1669. so  that  mouse  blankers  (in programs like Yak) kick-in, thinking there's
  1670. been  no input, and the mouse isn't restored, because there's no mousemoves
  1671. to unblank it.  Because Yak uses a rather bad blanking method, problems can
  1672. occur (mouse vanishes and won't come back).  Two solutions:
  1673.         1) Use 'Copper' blanking.
  1674.         2) Set MouseBlankTime to zero. You'll still have key blank,
  1675.            but no timed blank.
  1676. Then the AMOS problem of the pointer disappearing should be solved.
  1677. @endnode
  1678. @node Problem4 "Yak Documentation: Mouse Cycling and Caps Lock"
  1679. You have setup mouse cycling function to bring window to front to double
  1680. left click, it works OK but when you put CapsLock on, it doesn't work any
  1681. more. That's not a problem, that's a feature, from the commodity point of
  1682. view, CapsLock is a qualifier among others.
  1683. Anyway, Yak's flexibility allows you to solve your problem : just edit the
  1684. string gadget whhere the definition is displayed and add the following
  1685. (without the quotes) '-CapsLock' which means that CapsLock will be ignored
  1686. as a qualifier for this definition.
  1687. @endnode
  1688. ##      HISTORY
  1689. @node History "Yak Documentation: Program History"
  1690. @prev Problems
  1691. @next Credits
  1692. @{b}Program History@{ub}
  1693.  (* = new feature)
  1694.  @{b}v2.11@{ub}
  1695.     * Online help system
  1696.     * Added CapShift feature
  1697.     - Fixed a memory leak in 'Cycle windows' action.
  1698.     - Fixed a bug in UnixDirs feature where filename like 'hello....' was
  1699.     translated into 'hello../'
  1700.     - Bug fixed in installer script
  1701.     - Bug fixed in DMA blanker
  1702.     - Bug fixed, Yak was never setting back its priority to low one.
  1703.     - Bug fixed, 'Blank mouse on key pressed' option was not active if
  1704.       mouse timeout was set to 0.
  1705.  @{b}v2.10@{ub}  
  1706.     - A signal for emulation of depth screen gadget wasn't allocated.
  1707.     - Added a small delay to window to front/back mouse cycling to avoid a
  1708.     bigger delay when clicking on wb windows. The small delay is there to
  1709.     let wb do its job, it is configurable through 2 tooltypes FRONT_DELAY
  1710.     and BACK_DELAY.
  1711.     * New option for 'Insert Text' action, possibility to add a delay
  1712.     between chars.
  1713.     * New option for screen blanking: DMA Blanker.
  1714.     * Added a bgui.library version of the prefs editor, thanks Nick.
  1715.  @{b}v2.03@{ub}  
  1716.     - Bad change of Yak 2.02 removed, Yak priority back to 5. So
  1717.     double-clicking in workbench drawers will still introduce a delay.
  1718.     I need some time to to fix it, meanwhile users can configure 'Window To
  1719.     Front' mouse cycling to simple click.
  1720.     - 'Screen To Back' hotkey action works again.
  1721.     - 'Menu Shortcut' action, mutual exclude should work now, yes really ;-)
  1722.  @{b}v2.02@{ub}  
  1723.     - Side effect of a 2.01 fix, Yak wasn't hiding title screen bar when
  1724.     'Full Workbench' was set.
  1725.     - 'Full Workbench': now Yak takes care of other backdrop windows like
  1726.     those of some title screen clocks.
  1727.     - 'Menu Shortcut' action, when applied twice to the same mutual exclude
  1728.     item, was toggling this item.  
  1729.  @{b}v2.01@{ub}  
  1730.     - Bug fixed in 'Full Workbench' feature, Yak was confused by other
  1731.     backdrop windows than workbench's one.
  1732.     - Yak priority has been raised up to 21 in order to avoid delay when
  1733.     double-clicking into a workbench drawer.
  1734.         * Now, Yak remember active window on a screen already visited even when
  1735.     using screen depth gadgets
  1736.     - When screens cycling through backdrop windows, the backdrop window is
  1737.     no longer considered as the last active window for this screen. So,
  1738.     when coming back to this screen, the window that will get activated will
  1739.     the real last active window on this screen and not the backdrop one
  1740.     which was just activated during screens cycling.
  1741.  @{b}v2.00@{ub}  Major update
  1742.  <history for v1.60 and below has been omitted>
  1743. @endnode
  1744. ##      CREDITS
  1745. @node Credits "Yak Documentation: Credits and Thanks"
  1746. @prev History
  1747. @next YakTeam
  1748. @{b}Credits and Thanks@{ub}
  1749. Yak  is written entirely in C, and compiled with SAS/C 6.56 but it can also
  1750. be compiled with DICE.
  1751. The Prefs editor GUI was created first using GadToolsBox v2.0b, from Jaba
  1752. Development. Thanks Jan also for writing BGUI library.
  1753. Yak  makes  use  of  reqtools.library,  which  is  Copyright @{b}Nico Fran
  1754. ois@{ub}.
  1755. Yak also uses Wb2CLI, a very useful little link-module by @{b}Mike Sinz@{ub}.
  1756. Thanks also to @{b}Heinz Wrobel@{ub} for his wonderful port of RCS to the Amiga, to
  1757. @{b}Pierre Carette@{ub} and @{b}Sylvain Rougier@{ub} for BrowserII, @{b}Martin Kornd
  1758. rfer@{ub} for his
  1759. MagicMenu.
  1760. The   HotKey  definition  documentation  is  taken  from  the  ToolsManager
  1761. distribution, by kind permission of @{b}Stefan Becker@{ub}.
  1762. Thanks to @{b}Stefan Sticht@{ub} for his public domain MouseBlanker commodity - this
  1763. is where I pinched the 'Copper' mouse-blanking method.
  1764. And  a  big  thank-you to all those people who have written to me about Yak
  1765. with suggestions and bug reports.
  1766. Thanks also to @{b}Martin Huttenloher@{ub} for his wonderful icons package : MagicWB.
  1767. Thanks to Nicola Salmoria who explained me the principle of the "black
  1768. border" feature and for his great package NewIcons.
  1769. And last but not least, thanks to @{b}Martin Scott@{ub} who created Yak.
  1770. @endnode
  1771. ##      Yak development team
  1772. @node YakTeam "Yak Documentation: Yak development team"
  1773. @prev Credits
  1774. @{b}Yak development team@{ub}
  1775. Yak development is a team work.
  1776.     @{b}Programming@{ub}
  1777.         Gael Marziou
  1778.         Philippe Bastiani
  1779.         Nick Christie
  1780.     @{b}Translations, suggestions and beta testing@{ub}
  1781.         Alex Galassi     : italian doc, installer script and catalog.
  1782.         Ingolf Koch      : german doc, installer script and catalog.
  1783.         Christian H
  1784. j    : danish doc, installer script and catalog.
  1785.         Patrick van Beem : dutch installer script and catalog.
  1786.         Johan Billing    : swedish catalog.
  1787.         Peter Eriksson   : swedish installer script.
  1788.         Arttu K
  1789. rpinlehto: finnish installer script and catalog.
  1790. @endnode
  1791. ##      CONTACT
  1792. @node Contact "Yak Documentation: Contacting the authors"
  1793. @prev YakTeam
  1794. @{b}Contacting the authors@{ub}
  1795. We can be reached with comments, suggestions, bug reports, praise, money etc.
  1796. at the following addresses:
  1797.                 @{b}Ga
  1798. l Marziou
  1799.                 Cidex 103
  1800.                 38920 CROLLES
  1801.                 FRANCE@{ub}
  1802. OR BY EMAIL (preferred): @{b}Gael_Marziou@grenoble.hp.com@{ub}
  1803.                 @{b}Philippe Bastiani
  1804.                 7 Boulevard Ricard
  1805.                 13003 MARSEILLE
  1806.                 FRANCE@{ub}
  1807. and for BGUI prefs editor:
  1808.                 @{b}Nick Christie
  1809.                 39 St Georges Drive
  1810.                 Bransgore
  1811.                 BH23 8EZ
  1812.                 Great Britain@{ub}
  1813. Before reporting a problem, try to figure out if it's really a problem,
  1814. read carefully the doc and the @{" Problems / Non Problems " link Problems} section.
  1815. @endnode
  1816. ## INDEX
  1817. @node Index "Yak Documentation"
  1818. @prev Main
  1819. @next Index
  1820. @{b}Index@{ub}
  1821.     @{" AutoPoint                 " link AutoPoint}
  1822.     @{" AutoPopToFront            " link AutoPopToFront}
  1823.     @{" Black border              " link BlackBorder}
  1824.     @{" Blanking                  " link Blanking}
  1825.     @{" CapShift                  " link CapShift}
  1826.     @{" Click Volume              " link ClickVolume}
  1827.     @{" ClickToBack               " link ClickToBack}
  1828.     @{" ClickToFront              " link ClickToFront}
  1829.     @{" CycleScreens              " link CycleScreens}
  1830.     @{" Full Workbench            " link FullWorkbench}
  1831.     @{" Hotkey Actions            " link "Hotkey Actions"}
  1832.     @{" Hotkey Description String " link MoreHotkeys}
  1833.     @{" Key Activate              " link KeyActivate}
  1834.     @{" MMB Activate              " link MMBActivate}
  1835.     @{" MMB Shift                 " link MMBShift}
  1836.     @{" No Click                  " link NoClick}
  1837.     @{" RMB Activate              " link RMBActivate}
  1838.     @{" Screens Activation        " link ScreensActivation}
  1839.     @{" UNIX dirs                 " link UNIXDirs}
  1840.     @{" UNIX root                 " link UNIXRoot}
  1841.     @{" Wild star                 " link Wildstar}
  1842.     @{" Windows Activation        " link WindowsActivation}
  1843. @endnode
  1844.